Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

226
Vistas
¿Cómo deshacerse de "Los parámetros del método deben ser clases @State" en JMH cuando los parámetros provienen de otro método?

Estoy trabajando en un proyecto maven. El escenario es algo así como a continuación...

 class Test { public void applyAll() { .................... .................... Collection<Migratable> applicableUpdates = SomeOtherClass.getApplicableUpdates(); doUpdate(applicableUpdates); } @Benchmark public void apply(Migratable m) { .................... .................... } private void doUpdate(Collection<Migratable> applicableUpdates) throws Exception { for (Migratable m : applicableUpdates) { try { apply(m); } catch (Exception e) { logger.error("Falid to apply migration {}" + m, e); throw e; } } } }

Necesito calcular cuánto tiempo lleva ejecutar cada migración. Simplemente necesito calcular el tiempo de ejecución del método apply (Migratable m) .
Ahora, cuando construyo mi proyecto usando "mvn clean install", la compilación falló y muestra "Los parámetros del método deben ser clases @State".

Aquí, el parámetro proviene de otro método doUpdate (Colección de actualizaciones aplicables) [ver el escenario]. Entonces, ¿cómo puedo deshacerme de este error en un escenario dado?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hay bastantes problemas en su configuración aquí y parece que en realidad no ha mirado las muestras de JMH; y te recomiendo encarecidamente que lo hagas.

Algunas notas...

1) Su método @Benchmark devuelve void - debería devolver something ; de lo contrario, use BlackHoles (esto está en las muestras).

2) Si los parámetros provienen de otro método , significa que ese método debe ser un método @SetUp (esto está en los ejemplos)

3) El error que está viendo tiene que ver con el hecho de que su Migratable no es en realidad una clase @State (¡esto está nuevamente en los ejemplos!)

En este punto, no puedo enfatizar eso lo suficiente, pero mire y comprenda las muestras. No va a ser fácil, esto es micro-benchmark y por mucho que JMH intente hacernos las cosas más fáciles ocultando todo el código muy complicado , todavía nos obliga a cumplir con las reglas que existen allí.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda